package paquetes.interfazRemota;

import java.rmi.Remote;
import java.util.Date;
import java.util.List;

import paquetes.negocioVO.*;

public interface LogisticaController extends Remote {
	
	public float calcularTiempoDeEntrega(PedidoVO p);
	public List<SucursalVO> listarSucursales();
	public List<PedidoVO> listarPedidosParaViajeLocal(int suc);
	public List<PedidoVO> listarPedidosEnDeposito(int suc);
	public List<VehiculoVO> listarVehiculosDisponibles(int suc);
	public List<ViajeVO> listarViajesProgramados(int suc);
	public List<ViajeVO> listarViajesEnCurso(int suc);
    public List<String> listarAlertas(int suc);
    public void programarRetiroPorDomicilio(int suc,Date fecha,String ruta,int tiempo,int km,int idVeh,int[] pedidos,int idEmp);
    public void programarInterSucursal(int sucOrig,Date fecha,int sucDest,int idVeh,int[] pedidos,int idEmp);
    public void programarEntregaEnDomicilio(int suc,Date fecha,String ruta,int tiempo,int km,int idVeh,int[] cargas,int idEmp);
    public void programarEntregaCarrier(int suc,Date fecha,String ruta,int tiempo,int km,int idVeh,int[] pedidos,int idEmp,ProveedorVO pc);
    public ViajeVO informarSalidaViaje(ViajeVO v,int idEmp);
    public ViajeVO informarArrivoInterSucursal(long v,int idEmp);
    public ViajeVO informarArrivoViajeDomicilio(long v,int  idEmp);
    public ViajeVO informarArrivoViajeCarrier(long v,int  idEmp);
    public void informarPosicionVehiculo(int vId,float latitud,float longitud);
    public void informarDemoraEnViaje(int vId ,float minutosEstimados);
    public EmpleadoVO ObtenerEmpleado(int idEmp);
    public SucursalVO obtenerSucursal(int idSuc);
    public List<PedidoVO> ObtenerPedidos(int id);

}
